classDiagram
    class Factory {
        +createProduct(type: String): Product
    }
    
    class Product {
        <<interface>>
        +operation(): void
    }

    class ConcreteProductA {
        +operation(): void
    }

    class ConcreteProductB {
        +operation(): void
    }

    Factory --> Product : returns >
    Product <|-- ConcreteProductA : implements
    Product <|-- ConcreteProductB : implements



